//
//  HJEnumHeader.h
//  KaiChat
//
//  Created by lx on 2023/10/16.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN


typedef NS_OPTIONS(NSInteger, HJLoadType) {
    HJLoadTypeCache = 1 << 0,
    HJLoadTypeNetwork = 1 << 1,
};
 
typedef NS_ENUM(NSInteger, HJGroupInfoType) {
    HJGroupInfoTypeBase,
    HJGroupInfoTypeMember,
    HJGroupInfoTypeAdministrator,
    HJGroupInfoTypeAll,
};


typedef NS_ENUM(NSInteger, HJChatSystemMsgType) {
    HJChatSystemMsgTypeApplyFridend = 1,
    HJChatSystemMsgTypeApplyFridendAgree = 2,
    HJChatSystemMsgTypeTransfer = 31,
    HJChatSystemMsgTypeDisbandGroup = 400,
    HJChatSystemMsgTypeTransferGroup = 401,
    HJChatSystemMsgTypeNewGroup = 402,
    HJChatSystemMsgTypeJoinGroup = 403,
    HJChatSystemMsgTypeModifyGroupName = 404,
    HJChatSystemMsgTypeAddGroupManager = 405,
    HJChatSystemMsgTypeRemoveGroupManager = 406,
    HJChatSystemMsgTypeKickOutGroup = 407,
    HJChatSystemMsgTypeLeaveGroup = 408,
    HJChatSystemMsgTypePostGroupNotice = 409,
    HJChatSystemMsgTypeApplyJoinGroup = 410,
    HJChatSystemMsgTypeShareJoinGroup = 411,
};


typedef NS_ENUM(NSInteger, HJWebSocketConnectState) {
    HJWebSocketConnectStateNone,
    HJWebSocketConnectStateConnecting,
    HJWebSocketConnectStateSucceed,
    HJWebSocketConnectStateFail,
};

typedef NS_ENUM(NSInteger, HJMessageType) {
    HJMessageTypeText = 1,
    HJMessageTypeImage = 2,
    HJMessageTypeVoice = 3,
    HJMessageTypeVideo = 4,
    HJMessageTypeSystem = 5,
    HJMessageTypeOtherSystem = 50,
    HJMessageTypeNotice,
    HJMessageTypeAutoReply = 55,
    HJMessageTypeKeyboardReply = 56,
    HJMessageTypeTransfer = 91,
    HJMessageTypeOther,
};

typedef NS_ENUM(NSInteger, HJMessageStatus) {
    HJMessageStatusNone,
    HJMessageStatusSucceed,
    HJMessageStatusSending,
    HJMessageStatusFail,
};

typedef NS_ENUM(NSInteger, HJImageLoadStatus) {
    HJImageLoadStatusNone,
    HJImageLoadStatusSucceed,
    HJImageLoadStatusloading,
    HJImageLoadStatusFail,
};

typedef NS_ENUM(NSInteger, HJSelectFileType) {
    HJSelectFileTypePhoto = 1,
    HJSelectFileTypeDocument,
    HJSelectFileTypeCamera,
};

typedef NS_ENUM(NSInteger, HJFileType) {
    HJFileTypeImage = 1,
    HJFileTypeVideo,
    HJFileTypeVoice,
    HJFileTypeWord,
    HJFileTypeOther,
};

typedef NS_ENUM(NSInteger, HJChatType) {
    HJChatTypeOfficial = 3,
    HJChatTypeSingle = 1000,
    HJChatTypeGroup = 2000,
    HJChatTypeSystem = 3000,
};
 
typedef NS_ENUM(NSInteger, HJChatOfficialType) {
    HJChatOfficialTypeKaiSupport = 1,
    HJChatOfficialTypeKaiNews = 2,
    HJChatOfficialTypeKaiPay = 3,
};

typedef NS_ENUM(NSInteger, HJSetPasswordType) {
    HJSetPasswordTypeNone,
    HJSetPasswordTypeChange,
    HJSetPasswordTypeForget,
};

 

typedef NS_ENUM(NSInteger, HJDidOpenFlutterPageType) {
    HJDidOpenFlutterPageTypeNone,
    HJDidOpenFlutterPageTypeDApp,
    HJDidOpenFlutterPageTypeWallet,
    HJDidOpenFlutterPageTypeWalletManager,
    HJDidOpenFlutterPageTypeWalletCreatePassword,
    HJDidOpenFlutterPageTypeintegral,
};


typedef NS_ENUM(NSInteger, HJIntegralTaskType) {
    HJIntegralTaskTypeNickname = 202,
    HJIntegralTaskTypeAvatar = 203,
    HJIntegralTaskTypeAddFridend = 204,
    HJIntegralTaskTypeJoinGroup = 205,
    HJIntegralTaskTypeSingeChat = 301,
    HJIntegralTaskTypeGroupChat = 302,
    HJIntegralTaskTypeKaiPayTopUp = 303,
    HJIntegralTaskTypeKaiPayTransfer = 304,
    HJIntegralTaskTypeMPCTransfer = 306,
    HJIntegralTaskTypeMPCReceive = 307,
    HJIntegralTaskTypeKaiEarn = 308,
    HJIntegralTaskTypeInviteRegister = 310,
    HJIntegralTaskTypeDoTasks = 311,
};

typedef NS_ENUM(NSInteger, HJTaskState) {
    HJTaskStateNone,
    HJTaskStateSucceed,
    HJTaskStateOngoing,
    HJTaskStateCancel,
    HJTaskStateError,
};

NS_ASSUME_NONNULL_END
